package com.ruoyi.business.service;

import java.util.List;
import com.ruoyi.business.domain.JtPurchaseOrder;
import com.ruoyi.business.domain.vo.JtPurchaseOrderVo;

import javax.validation.constraints.NotEmpty;

/**
 * 采购单Service接口
 * 
 * @author Alan Zhang
 * @date 2025-03-29
 */
public interface IJtPurchaseOrderService 
{
    /**
     * 查询采购单
     * 
     * @param purchaseId 采购单主键
     * @return 采购单
     */
    public JtPurchaseOrder selectJtPurchaseOrderByPurchaseId(Long purchaseId);

    /**
     * 查询采购单列表
     * 
     * @param jtPurchaseOrder 采购单
     * @return 采购单集合
     */
    public List<JtPurchaseOrder> selectJtPurchaseOrderList(JtPurchaseOrder jtPurchaseOrder);

    /**
     * 新增采购单
     * 
     * @param jtPurchaseOrder 采购单
     * @return 结果
     */
    public int insertJtPurchaseOrder(JtPurchaseOrder jtPurchaseOrder);

    /**
     * 修改采购单
     * 
     * @param jtPurchaseOrder 采购单
     * @return 结果
     */
    public int updateJtPurchaseOrder(JtPurchaseOrder jtPurchaseOrder, String removeItemIds);

    /**
     * 修改采购单
     *
     * @param jtPurchaseOrder 采购单
     * @return 结果
     */
    public int updateJtPurchaseOrder(JtPurchaseOrder jtPurchaseOrder);

    /**
     * 批量删除采购单
     * 
     * @param purchaseIds 需要删除的采购单主键集合
     * @return 结果
     */
    public int deleteJtPurchaseOrderByPurchaseIds(String purchaseIds);

    /**
     * 删除采购单信息
     * 
     * @param purchaseId 采购单主键
     * @return 结果
     */
    public int deleteJtPurchaseOrderByPurchaseId(Long purchaseId);

    /**
     * 审核
     * @param ids
     * @return
     */
    public int auditJtPurchaseOrderByPurchaseIds(String ids);

    /**
     * 反审核
     * @param ids
     * @return
     */
    public int unAuditJtPurchaseOrderByPurchaseIds(String ids);

    /**
     * 完成采购单
     * @param ids
     * @return
     */
    public int finishedJtPurchaseOrderByPurchaseIds(String ids);

    /**
     * 查询采购单号
     * @param orderNo
     * @return
     */
    public JtPurchaseOrderVo selectJtPurchaseOrderByPurchaseOrderNo(@NotEmpty String orderNo);
}
